// 头部引入
const NodePolyfillPlugin = require('node-polyfill-webpack-plugin')  //防止打包后的文件中有一些不支持的新特性
const CompressionPlugin = require('compression-webpack-plugin'); //引入gzip压缩插件
module.exports = {
    publicPath: "./", //process.env.NODE_ENV === 'production' ? '/webpage' : '/', 配置打包后的线上文件路径,此处和 router/index.js 中的 base 配置任选一个
    configureWebpack: {
        plugins: [
            new NodePolyfillPlugin(),
            new CompressionPlugin({
                filename: "[path][base].gz", // 这种方式是默认的，多个文件压缩就有多个.gz文件
                //  filename: '[path].gz[query]', //  使得多个.gz文件合并成一个文件，这种方式压缩后的文件少，报错建议使用第一种方式
                algorithm: "gzip", // 官方默认压缩算法也是gzip
                test: /\.js$|\.css$|\.html$|\.ttf$|\.eot$|\.woff$/, // 使用正则给匹配到的文件做压缩，这里是给html、css、js以及字体（.ttf和.woff和.eot）做压缩
                threshold: 10240, //以字节为单位压缩超过此大小的文件，使用默认值10240吧
                minRatio: 0.8, // 最小压缩比率，官方默认0.8
                //是否删除原有静态资源文件，即只保留压缩后的.gz文件，建议这个置为false，还保留源文件。以防：
                // 假如出现访问.gz文件访问不到的时候，还可以访问源文件双重保障
                deleteOriginalAssets: false,
            }),
        ],
    },
    lintOnSave: false, //关闭eslint检查
    devServer: {
        compress: false, // 代码是否压缩
        open: false, //设置自动在浏览器中打开
        port: 8080, //设置端口
        //设置代理、跨域
        proxy: {
            // 设置端口
            "/request": {
                target: process.env.VUE_APP_BASE_API,  //全局开发环境配置请求
                changeOrigin: true, // 设置跨域
                secure: false, //如果是http接口，需要配置该参数
                pathRewrite: {
                    "^/request": "",
                },
            },
        },
    },
};